package com.doit.day03

import scala.collection.mutable.ListBuffer

object _06_算子 {
  def main(args: Array[String]): Unit = {

    val list: List[Int] = List(1, 2, 3, 4, 5)
    //将集合中的每一个元素都*10，然后返回一个新的集合
    val ints: ListBuffer[Int] = new ListBuffer[Int]

    for (elem <- list) {
      ints.append(elem*10)
    }
    val res: List[Int] = ints.toList
    println(res)

    //map ==》 做映射
    val map1  = (a:Int)=>{a*10}
    val map2: Int => Int = (a:Int)=>{a*a}
    val map3: Int => Int = (a:Int)=>{10}
    val map4: Int => String = (a:Int)=>{"hello"}
    val map5: Int => Unit = (a:Int)=>{println("hello")}
    val map6: Int => ScalaOrder = (a:Int)=>{new ScalaOrder("a","b","v","c",10,10.1)}

    val res1: List[Int] = list.map((a:Int)=>{a*10})
    //函数的至简原则
    //如果参数只有一个 如果函数体里面就一行  那么大括号可以省略
    //如果把小括号省了，那么类型也一起省了
    val res2: List[Int] = list.map(a=>a*10)
    //如果参数在后面只用了一次，参数也省了  箭头也省了把  a此时就不知道是个啥了，a换成 _
    val res3: List[Int] = list.map(_*10)
    val map20: Int => Int = (a:Int)=>{a*a}
//    val res4: List[Int] = list.map(Math.pow(_,2).toInt)
    println(res1)









  }

}
